1. Field
Embodiments of the invention relate to the field of network processing; and more specifically, to lockless IPsec processing in a distributed processing environment.
2. Background
A multi-core network processor is a network processor with two or more processing cores. Multi-core network processors may increase processing performance. Certain packets from the same stream or flow (e.g., having the same source and destination) may be processed concurrently by the multi-core network processor. However, certain packets belonging to the same stream have traditionally required serialized processing.
In a typical distributed processing environment, processing IPsec packets (IPSec is described in Request For Comments (RFC) 4301, “System Architecture for the Internet Protocol”, December 2005) from the same stream (e.g., the same IPsec tunnel) requires serialized processing for at least a portion of the IPsec processing. To enforce serialization, a lock is typically used (e.g., a semaphore, tag, etc.) which prevents other processing cores from processing different packets of that IPsec stream while the lock is in place.